package com.sgb.kjwl.di.machine;

import com.sgb.kjwl.repository.MachineRepertory;
import com.sgb.kjwl.repository.impl.MachineRepertoryImpl;
import com.sgb.kjwl.view.ui.activity.house.LeaseFactoryListFragment;
import com.sgb.kjwl.view.ui.activity.house.LeaseFarmListFragment;
import com.sgb.kjwl.view.ui.activity.house.LeaseHallMapFragment;
import com.sgb.kjwl.view.ui.activity.house.LeaseHallMapFragment2;
import com.sgb.kjwl.view.ui.activity.house.LeaseHouseListFragment;
import com.sgb.kjwl.view.ui.activity.house.LeaseLandListFragment;
import com.sgb.kjwl.view.ui.fragment.home.LeaseSearchItemFragment;
import com.sgb.kjwl.view.ui.fragment.machine.AskLeaseBiddingFragment;
import com.sgb.kjwl.view.ui.fragment.machine.AskLeaseFragment;
import com.sgb.kjwl.view.ui.fragment.machine.AskLeaseHallFragment;
import com.sgb.kjwl.view.ui.fragment.machine.AskLeasePickFragment;
import com.sgb.kjwl.view.ui.fragment.machine.CarInfoFragment;
import com.sgb.kjwl.view.ui.fragment.machine.CarListFragment3;
import com.sgb.kjwl.view.ui.fragment.machine.LeaseBusinessFragment;
import com.sgb.kjwl.view.ui.fragment.machine.MachineListFragment3;
import com.sgb.kjwl.view.ui.fragment.machine.MapLeaseFragment;
import com.sgb.kjwl.view.ui.fragment.machine.MyAskLeaseFragment;
import com.sgb.kjwl.view.ui.fragment.self.MyInquiryLeaseFragment;
import com.sgb.kjwl.view.ui.fragment.self.MyReplyLeaseFragment;
import com.sgb.kjwl.viewmodel.home.LeaseSearchItemModel;
import com.sgb.kjwl.viewmodel.house.LeaseFactoryListFragModel;
import com.sgb.kjwl.viewmodel.house.LeaseFarmListFragModel;
import com.sgb.kjwl.viewmodel.house.LeaseHallMapFragModel;
import com.sgb.kjwl.viewmodel.house.LeaseHouseListFragModel;
import com.sgb.kjwl.viewmodel.house.LeaseLandListFragModel;
import com.sgb.kjwl.viewmodel.machine.AskLeaseBiddingFragmentModel;
import com.sgb.kjwl.viewmodel.machine.AskLeaseFragModel;
import com.sgb.kjwl.viewmodel.machine.AskLeaseFragmentHallModel;
import com.sgb.kjwl.viewmodel.machine.AskLeasePickFragmentModel;
import com.sgb.kjwl.viewmodel.machine.CarListFragModel3;
import com.sgb.kjwl.viewmodel.machine.LeaseBusinessFragmentModel;
import com.sgb.kjwl.viewmodel.machine.MachineListFragModel3;
import com.sgb.kjwl.viewmodel.machine.MapLeaseFragModel;
import com.sgb.kjwl.viewmodel.machine.MyAskLeaseFragModel;
import com.sgb.kjwl.viewmodel.machine.MyInquiryLeaseFragModel;
import com.sgb.kjwl.viewmodel.machine.MyReplyLeaseFragModel;
import com.sgb.kjwl.viewmodel.transport.CarsInfoModel;
import com.swgk.core.base.di.Fragment;
import com.swgk.core.base.api.BaseApiSource;
import com.swgk.core.base.model.preference.BasePreferenceSource;

import dagger.Module;
import dagger.Provides;

@Module
public class MachineFragModule {
    private MachineListFragment3 materialListFragment3;
    private CarListFragment3 carListFragment3;
    private MapLeaseFragment mapLeaseFragment;
    private AskLeaseFragment askLeaseFragment;
    private MyAskLeaseFragment myAskLeaseFragment;
    private CarInfoFragment carInfoFragment;
    private LeaseHouseListFragment leaseHouseListFragment;
    private LeaseHallMapFragment leaseHallMapFragment;
    private LeaseFactoryListFragment leaseFactoryListFragment;
    private LeaseLandListFragment leaseLandListFragment;
    private MyInquiryLeaseFragment myInquiryLeaseFragment;
    private MyReplyLeaseFragment myReplyLeaseFragment;
    private LeaseSearchItemFragment leaseSearchItemFragment;
    private LeaseFarmListFragment leaseFarmListFragment;
    private AskLeaseHallFragment askLeaseHallFragment;
    private AskLeasePickFragment askLeasePickFragment;
    private AskLeaseBiddingFragment askLeaseBiddingFragment;
    private LeaseBusinessFragment leaseBusinessFragment;
    private LeaseHallMapFragment2 leaseHallMapFragment2;

    public MachineFragModule(CarInfoFragment carInfoFragment) {
        this.carInfoFragment = carInfoFragment;
    }

    public MachineFragModule(MachineListFragment3 materialListFragment3) {
        this.materialListFragment3 = materialListFragment3;
    }

    public MachineFragModule(CarListFragment3 carListFragment3) {
        this.carListFragment3 = carListFragment3;
    }

    public MachineFragModule(MapLeaseFragment mapFragment) {
        this.mapLeaseFragment = mapFragment;
    }

    public MachineFragModule(AskLeaseFragment askFragment) {
        this.askLeaseFragment = askFragment;
    }

    public MachineFragModule(MyAskLeaseFragment askFragment) {
        this.myAskLeaseFragment = askFragment;
    }

    public MachineFragModule(LeaseHouseListFragment leaseHouseListFragment) {
        this.leaseHouseListFragment = leaseHouseListFragment;
    }

    public MachineFragModule(LeaseHallMapFragment leaseHallMapFragment) {
        this.leaseHallMapFragment = leaseHallMapFragment;
    }

    public MachineFragModule(LeaseHallMapFragment2 leaseHallMapFragment2) {
        this.leaseHallMapFragment2 = leaseHallMapFragment2;
    }

    public MachineFragModule(LeaseFactoryListFragment leaseFactoryListFragment) {
        this.leaseFactoryListFragment = leaseFactoryListFragment;
    }

    public MachineFragModule(LeaseLandListFragment leaseLandListFragment) {
        this.leaseLandListFragment = leaseLandListFragment;
    }

    public MachineFragModule(MyInquiryLeaseFragment myInquiryLeaseFragment) {
        this.myInquiryLeaseFragment = myInquiryLeaseFragment;
    }

    public MachineFragModule(MyReplyLeaseFragment myReplyLeaseFragment) {
        this.myReplyLeaseFragment = myReplyLeaseFragment;
    }

    public MachineFragModule(LeaseSearchItemFragment leaseSearchItemFragment) {
        this.leaseSearchItemFragment = leaseSearchItemFragment;
    }

    public MachineFragModule(LeaseFarmListFragment leaseFarmListFragment) {
        this.leaseFarmListFragment = leaseFarmListFragment;
    }

    public MachineFragModule(AskLeaseHallFragment askLeaseHallFragment) {
        this.askLeaseHallFragment = askLeaseHallFragment;
    }

    public MachineFragModule(AskLeasePickFragment askLeasePickFragment) {
        this.askLeasePickFragment = askLeasePickFragment;
    }

    public MachineFragModule(AskLeaseBiddingFragment askLeaseBiddingFragment) {
        this.askLeaseBiddingFragment = askLeaseBiddingFragment;
    }

    public MachineFragModule(LeaseBusinessFragment leaseBusinessFragment) {
        this.leaseBusinessFragment = leaseBusinessFragment;
    }

    @Provides
    @Fragment
    MachineRepertory provideMachineRepertory(BaseApiSource apiSource, BasePreferenceSource preferenceSource) {
        return new MachineRepertoryImpl(apiSource, preferenceSource);
    }

    @Provides
    @Fragment
    MachineListFragModel3 provideMachineListFragModel3(MachineRepertory machineRepertory) {
        return new MachineListFragModel3(materialListFragment3, machineRepertory);
    }

    @Provides
    @Fragment
    CarListFragModel3 provideCarListFragModel3(MachineRepertory machineRepertory) {
        return new CarListFragModel3(carListFragment3, machineRepertory);
    }

    @Provides
    @Fragment
    MapLeaseFragModel provideMapLeaseFragModel(MachineRepertory machineRepertory) {
        return new MapLeaseFragModel(mapLeaseFragment, machineRepertory);
    }

    @Provides
    @Fragment
    AskLeaseFragModel provideAskLeaseFragModel(MachineRepertory machineRepertory) {
        return new AskLeaseFragModel(askLeaseFragment, machineRepertory);
    }

    @Provides
    @Fragment
    MyAskLeaseFragModel provideMyAskLeaseFragModel(MachineRepertory machineRepertory) {
        return new MyAskLeaseFragModel(myAskLeaseFragment, machineRepertory);
    }


    @Provides
    @Fragment
    CarsInfoModel provideCarInfoFragModel(MachineRepertory machineRepertory) {
        return new CarsInfoModel(carInfoFragment, machineRepertory);
    }

    @Provides
    @Fragment
    LeaseHouseListFragModel provideLeaseHouseListFragModel(MachineRepertory machineRepertory) {
        return new LeaseHouseListFragModel(leaseHouseListFragment, machineRepertory);
    }

//    @Provides
//    @Fragment
//    LeaseHallMapFragModel provideLeaseHallMapFragModel(MachineRepertory machineRepertory) {
//        return new LeaseHallMapFragModel(leaseHallMapFragment, machineRepertory);
//    }

    @Provides
    @Fragment
    LeaseHallMapFragModel provideleaseHallMapFragment2Model(MachineRepertory machineRepertory) {
        return new LeaseHallMapFragModel(leaseHallMapFragment2, machineRepertory);
    }

    @Provides
    @Fragment
    LeaseFactoryListFragModel provideLeaseFactoryListFragModel(MachineRepertory machineRepertory) {
        return new LeaseFactoryListFragModel(leaseFactoryListFragment, machineRepertory);
    }

    @Provides
    @Fragment
    LeaseLandListFragModel provideLeaseLandListFragModel(MachineRepertory machineRepertory) {
        return new LeaseLandListFragModel(leaseLandListFragment, machineRepertory);
    }

    @Provides
    @Fragment
    MyInquiryLeaseFragModel provideMyInquiryLeaseFragModel(MachineRepertory machineRepertory) {
        return new MyInquiryLeaseFragModel(myInquiryLeaseFragment, machineRepertory);
    }

    @Provides
    @Fragment
    MyReplyLeaseFragModel provideMyReplyLeaseFragModel(MachineRepertory machineRepertory) {
        return new MyReplyLeaseFragModel(myReplyLeaseFragment, machineRepertory);
    }

    @Provides
    @Fragment
    LeaseSearchItemModel provideLeaseSearchItemModel(MachineRepertory machineRepertory) {
        return new LeaseSearchItemModel(leaseSearchItemFragment, machineRepertory);
    }

    @Provides
    @Fragment
    LeaseFarmListFragModel provideLeaseFarmListFragModel(MachineRepertory machineRepertory) {
        return new LeaseFarmListFragModel(leaseFarmListFragment, machineRepertory);
    }

    @Provides
    @Fragment
    AskLeaseFragmentHallModel provideAskLeaseFragmentHallModel(MachineRepertory machineRepertory) {
        return new AskLeaseFragmentHallModel(askLeaseHallFragment, machineRepertory);
    }

    @Provides
    @Fragment
    AskLeasePickFragmentModel provideAskLeasePickFragmentModel(MachineRepertory machineRepertory) {
        return new AskLeasePickFragmentModel(askLeasePickFragment, machineRepertory);
    }

    @Provides
    @Fragment
    AskLeaseBiddingFragmentModel provideAskLeaseBiddingFragmentModel(MachineRepertory machineRepertory) {
        return new AskLeaseBiddingFragmentModel(askLeaseBiddingFragment, machineRepertory);
    }

    @Provides
    @Fragment
    LeaseBusinessFragmentModel provideLeaseBusinessFragmentModel(MachineRepertory machineRepertory) {
        return new LeaseBusinessFragmentModel(leaseBusinessFragment, machineRepertory);
    }
}

